package models.common.entity;


import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.Transient;

import models.common.entity.t_digital_commercial_paper.DigitalStatus;
import play.db.jpa.Model;

import common.constants.ConfConst;
import common.constants.Constants;
import common.utils.Security;
import common.utils.number.Arith;
/**
 * 背书表
 *@author xiaojun
 *@version 2017-4-14 下午2:18:51
 */
@Entity
public class t_endorse extends Model{
	/**
	 * 构造器
	 */
	public t_endorse(){};
	@Transient
	public String signId;
	public String getSignId () {
		
		return Security.addSign(this.id, Constants.BID_ID_SIGN, ConfConst.ENCRYPTION_KEY_DES);
	}
    
	/**开票人授信id*/
    public long company_credit_id;
    /**收票人授信id*/
    public long receive_credit_id;
    /**背书企业id*/
    public long endorse_company_id;

    /**背书公司名称 */
    public String endorse_company_name;

    /**合同名称和编号*/
    public String contract_name_code;

    /**凭证金额*/
    public double bill_money;

    /**融通额度*/
    public double finacing_limit;

    /**被背书人*/
    public String endoresd_company_name;

    /**被背书企业id*/
    public long endoresd_company_id;
    			
    /**背书时间'*/
    public Date endorse_time;

    /**'付款时间(到期时间)' */
    public Date payment_time;

    /**凭证图片正面'*/
    public String paper_pic_on;
    /**凭证图片反面'*/
    public String paper_pic_under;
    /**托收状态 默认为 0 未托收  1 已托收 */
    public int collection_status;

    /**'是否可以背书（默认是可以背书的）0可以 1不可以' */
    public int is_allow_endorse;

    /**现在商票id  */
    public long original_id;
    /**'数字商票id'  */
    public long digital_id;
    /**'债权表id'  */
    public long debt_creditor_id;
    /**'收到背书状态\r\n状态0 待确认1 已确认2 已拒收3 已到期4 已逾期5 已失效6 已撤票7 质押中8 已背书*/
    public int receive_endorse_status;
    /**还款状态  0 未还款  1 已还款*/
    public int repayment_status;
    /**冻结金额*/
    public double account_frozen;
    /**凭证号码*/
    public String certificate_code;
    /**获取状态*/
    public DigitalStatus getStatus() {
    	DigitalStatus status = DigitalStatus.getEnum(this.receive_endorse_status);
		
		return status;
	}
    
    /**可用金额*/
    public double finacing_residue_limit;
    /**放款人id*/
    public long lender_id;
    /**放款人名称*/
    public String lender_name;
    /**融通比例'*/
    public double finacing_ratio;
    
    /**融通最高金额'*/
    public double getFinacing_limit(){
    	return Arith.div(Arith.mul(bill_money, finacing_ratio),100,2);
    }
    /**现在的商票id（关联到商票表）  */
    public long commer_paper_id;
	@Transient
	public String signPaperId;
	public String getSignPaperId () {
		
		return Security.addSign(this.commer_paper_id, Constants.BID_ID_SIGN, ConfConst.ENCRYPTION_KEY_DES);
	}
	/**开票人授信申请id */
    public long credit_limit_id;
}